public class NotificationService extends Service {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
stopSelf();
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
createNotification();
return START_STICKY;
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void createNotification() {
Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
Notification mNotification = new Notification.Builder(this)
.setContentTitle("Notification Message")
.setContentText("Notification Text")
.setSmallIcon(R.drawable.ic_son)
.setContentIntent(pIntent)
.setSound(soundUri)
.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
mNotification.flags |= Notification.FLAG_AUTO_CANCEL;//notificationa tıklanınca notificationın otomatik silinmesi için
mNotification.defaults |= Notification.DEFAULT_SOUND;//notification geldiğinde bildirim sesi çalması için
mNotification.defaults |= Notification.DEFAULT_VIBRATE;//notification geldiğinde bildirim titremesi için
notificationManager.notify(0, mNotification);
}
// MANİFEST DOYASINA SERVİS CLASS INI EKLEME
<service android:name="com.aa.bb.NotificationService"
android:exported="false"></service>
Sade hali ile bu şekilde background servis içinde notification oluşturabilirsin istediğin zamanı yada duruma göre gönderme olayını da projene göre yapabilirsin.